package br.com.jmed.model;

import java.io.Serializable;
import javax.persistence.*;

import java.util.Date;


/**
 * The persistent class for the prontuario_tipo_acomodacao database table.
 * 
 */
@Entity
@Table(name="prontuario_tipo_acomodacao")
@NamedQueries({@NamedQuery(name="ProntuarioTipoAcomodacao.findByProntuario",query="SELECT pta FROM ProntuarioTipoAcomodacao AS pta WHERE pta.prontuario.codigo = :prontuario AND pta.situacao = 'A' "),
			   @NamedQuery(name="ProntuarioTipoAcomodacao.findMaiorMenorDataByProntuario",query="SELECT new br.com.jmed.dto.MaiorMenorDataDTO(MAX(pta.dataSaida),MIN(pta.dataEntrada)) FROM ProntuarioTipoAcomodacao AS pta WHERE pta.prontuario.codigo = :prontuarioCodigo")})
public class ProntuarioTipoAcomodacao implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer codigo;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="data_alteracao")
	private Date dataAlteracao;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="data_entrada")
	private Date dataEntrada;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="data_inclusao")
	private Date dataInclusao;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="data_saida")
	private Date dataSaida;

	private String observacoes;

	private String situacao;

	//uni-directional many-to-one association to Usuario
    @ManyToOne
	@JoinColumn(name="usuario_inclusao")
	private Usuario usuarioInclusao;

	//uni-directional many-to-one association to Usuario
    @ManyToOne
	@JoinColumn(name="usuario_alteracao")
	private Usuario usuarioAlteracao;

	//bi-directional many-to-one association to Prontuario
    @ManyToOne
	@JoinColumn(name="prontuario")
	private Prontuario prontuario;

	//uni-directional many-to-one association to TipoAcomodacao
    @ManyToOne
	@JoinColumn(name="tipo_acomodacao")
	private TipoAcomodacao tipoAcomodacao;

    public ProntuarioTipoAcomodacao() {
    }

	public Integer getCodigo() {
		return this.codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public Date getDataAlteracao() {
		return this.dataAlteracao;
	}

	public void setDataAlteracao(Date dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}

	public Date getDataEntrada() {
		return this.dataEntrada;
	}

	public void setDataEntrada(Date dataEntrada) {
		this.dataEntrada = dataEntrada;
	}

	public Date getDataInclusao() {
		return this.dataInclusao;
	}

	public void setDataInclusao(Date dataInclusao) {
		this.dataInclusao = dataInclusao;
	}

	public Date getDataSaida() {
		return this.dataSaida;
	}

	public void setDataSaida(Date dataSaida) {
		this.dataSaida = dataSaida;
	}

	public String getObservacoes() {
		return this.observacoes;
	}

	public void setObservacoes(String observacoes) {
		this.observacoes = observacoes;
	}

	public String getSituacao() {
		return this.situacao;
	}

	public void setSituacao(String situacao) {
		this.situacao = situacao;
	}

	public Usuario getUsuarioAlteracao() {
		return this.usuarioAlteracao;
	}

	public void setUsuarioAlteracao(Usuario usuarioAlteracao) {
		this.usuarioAlteracao = usuarioAlteracao;
	}

	public Usuario getUsuarioInclusao() {
		return this.usuarioInclusao;
	}

	public void setUsuarioInclusao(Usuario usuarioInclusao) {
		this.usuarioInclusao = usuarioInclusao;
	}

	public Prontuario getProntuario() {
		return this.prontuario;
	}

	public void setProntuario(Prontuario prontuario) {
		this.prontuario = prontuario;
	}
	
	public TipoAcomodacao getTipoAcomodacao() {
		return this.tipoAcomodacao;
	}

	public void setTipoAcomodacao(TipoAcomodacao tipoAcomodacao) {
		this.tipoAcomodacao = tipoAcomodacao;
	}
	
}